Battery-powered computing devices, e.g., laptops, smart phones, MP3 players, etc., are configured to transition from an active state to an inactive state—after a user associated with the device has stopped using the device—to prolong its battery life. From the user's perspective, a battery-powered computing device is in an inactive state if at least the device's display is dark, no sounds are played and the device's fans do not come on. Additionally, if the device has a clam shell, the latter also can be closed when the device is inactive.
While the battery-powered computing device is in the inactive state, some of computing resources of the device, e.g., a service processor, etc., may occasionally perform some tasks (backup, maintenance, etc.) without the user being aware. In addition, although the battery-powered computing device is in the inactive state, a communication module of the device maintains active a communication channel between a notification handler process running on the device and a cloud-based notification server. In this manner, notifications for applications (apps) installed on the device are received from the cloud-based notification server through the active communication channel. Examples of such applications are calendar app, contacts app, image library organizer app, lost-device locator app, voice over Internet protocol (VoIP) app, video conference app, etc.
Conventionally, upon receipt of each notification, the notification handler process causes activation of the device and delivers the received notification to a corresponding application. Once the battery-powered computing device transitions from the inactive state to the active state, additional computing resources are used for running the app to which the received notification was delivered. As such, consumption of the battery life associated with the active state of the device is faster relative to the consumption associated with the inactive state of the device.